In computer animation, a character generally is defined by a topology, often called a skeleton, and an associated geometry, often called a skin or envelope. The topology includes a number of interconnected elements. Each element in the topology is defined in three dimensions by a position and orientation, which may include direction and rotation. Various algorithms control the relationship between the topology and the geometry to produce the look of a character.
Various techniques may be used to manipulate a character to provide the appearance of animation. Generally, such techniques involve associating one or more animation controls with one or more elements of the topology in a process called rigging. One technique is to specify a series of key frames that describe motion of the character over time, using a combination of inverse and forward kinematics and character rigging techniques. Another technique is to use motion capture data representing the position and orientation of selected elements of the topology of a character over time. For example, motion may be captured using sensors attached to a live actor. The motion capture data may be used to derive the topology of a character representing the live actor. The motion capture data then is used to animate that character. Other techniques include using constraints, scripts or expressions.
Motion capture data for one character may be reused with another character using a process called motion retargetting. Motion retargetting algorithms generally require that the source character and target character have identical structures, or that the target character has a simpler structure than the source character. With these constraints, motion retargetting can be performed between characters having the same structure but different proportions. See, for example, “Retargetting Motion to New Characters,” by Michael Gleicher, in Proceedings of SIGGRAPH 98, pages 33-42, July 1998. In practice, motion retargetting is restricted to retargetting motion capture data to pre-defined rig structures, and in limited cases moving animations from one pre-defined rig to another, due to the narrow constraints of current methods.